<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

</body>
<script>
  // 官方提供的专门遍历数组 执行特定操作的方法
  // forEach  map filter some  every   

  // forEach()  数组的遍历
  // 遍历数组,每次循环时执行传入的回调函数(执行的操作)
  // 回调函数接收三个参数 item(循环当前的元素),index(当前下标),array(原数组)

  // 返回值:undefined

  // var arr = [2,8,4,6,5,7,9,3,1];
  // arr.forEach(function(item,index,array){ // 每次循环时 执行的操作
  //     console.log(item,index,array);
  // })

  // arr.forEach(function(item,index){ // 每次循环时 执行的操作
  //     console.log(item,index);
  // })


  // map()   数组的映射(迭代   => 根据原数组 生成新数组) 
  // 遍历数组,每次循环时执行传入的回调函数(执行的操作), 并接收回调函数的返回值,放到新数组中 最终返回
  // 返回值: 回调函数中的返回值 形成的新数组

  // 对比forEach    map
  // 基本功能  都会遍历数组
  // 区别: forEach  不接受回调函数的返回值   map接收

  // var arr = [2, 8, 4, 6, 5, 7, 9, 3, 1];
  // var result = arr.map(function (item, index, array) { // 每次循环时 执行的操作
  //   console.log(item, index, array);
  //   return item + 10;
  // })
  // console.log(result);


  // filter()  数组的过滤/筛选 (把满足条件的元素 放到新数组中).
  // 遍历数组,每次循环时执行传入的回调函数(执行的操作), 回调函数返回(return)一个条件表达式,把满足条件的元素 放到新数组中
  // 返回值: 满足条件的元素 形成的数组

  // var arr = [2,8,4,6,5,7,9,3,1];
  // for(var i=0;i<arr.length;i++){
  //     var item = arr[i];
  //     if(item>=6){

  //     }
  // }

  // var arr = [2, 8, 4, 6, 5, 7, 9, 3, 1];
  // var result = arr.filter(function (item, index, array) {
  //   // console.log(item,index,array);
  //   // return item >= 6; // true || false
  //   return item % 2 == 0; // true || false
  // })
  // console.log(result);


  // some()   判断数组中是否存在满足条件的元素.
  // 遍历数组,每次循环时执行传入的回调函数(执行的操作), 回调函数返回(return)一个条件表达式,只要有一个元素满足则返回true , 都不满足返回false 
  // 返回值: 布尔值
  // var arr = [2, 8, 4, 6, 5, 7, 9, 3, 1];
  // var flag = arr.some(function (item, index, array) {
  //   // console.log(item,index,array);
  //   // return item % 2 ==0 && item % 3 == 0;
  //   return item % 2 == 0 && item % 7 == 0;
  // })
  // console.log(flag);

  // every()   判断数组中所有的元素是否都满足满足某个条件.
  // 遍历数组,每次循环时执行传入的回调函数(执行的操作), 回调函数返回(return)一个条件表达式,全都满足则返回true , 有一个不满足则返回false 
  // 返回值: 布尔值
  var arr = [2, 8, 4, 6, 5, 7, 9, 3, 1];
  var flag = arr.every(function (item, index, array) {
    // console.log(item,index,array);
    return item >= 1 && item > 10;
    // return item % 2 == 0;
  })
  console.log(flag);
</script>

</html>